﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
 * 创建者：王明亮
 * 创建时间：2022/12/6 8:42:20
 * 版本：V1.0.0
 * 描述：
 *
 * ----------------------------------------------------------------
 * 修改人：
 * 时间：
 * 修改说明：
 *
 * 版本：V1.0.1
 *----------------------------------------------------------------*/
#endregion << 版 本 注 释 >>

using AgoraChat;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace chatSDKApp.Forms.ChatRoom
{
    // 实现监听器以及定义监听器对象
    // 在本例中，用户 A 为当前用户。
    public class GroupManagerDelegate : IGroupManagerDelegate
    {
        // 注册群组回调。
        //GroupManagerDelegate adelegate = new GroupManagerDelegate();
        //SDKClient.Instance.GroupManager.AddGroupManagerDelegate(adelegate);

        // 移除群组回调。
        // SDKClient.Instance.GroupManager.RemoveGroupManagerDelegate(adelegate);

        public GroupManagerDelegate()
        {
            // 注册群组回调。
            GroupManagerDelegate adelegate = new GroupManagerDelegate();
            SDKClient.Instance.GroupManager.AddGroupManagerDelegate(adelegate);
        }

        // 当前用户收到了入群邀请。受邀用户会收到该回调。例如，用户 B 邀请用户 A 入群，则用户 A 会收到该回调。
        public void OnInvitationReceivedFromGroup(string groupId, string groupName, string inviter, string reason)
        {
        }
        // 当前用户发送入群申请。群主和群管理员会收到该回调。
        public void OnRequestToJoinReceivedFromGroup(string groupId, string groupName, string applicant, string reason)
        {
        }
        // 当前用户的入群申请被接受。申请人会收到该回调。例如，用户 B 接受用户 A 的入群申请后，用户 A 会收到该回调。
        public void OnRequestToJoinAcceptedFromGroup(string groupId, string groupName, string accepter)
        {
        }
        // 当前用户的入群申请被拒绝。申请人会收到该回调。例如，用户 B 拒绝用户 A 的入群申请后，用户 A 会收到该回调。
        public void OnRequestToJoinDeclinedFromGroup(string groupId, string groupName, string decliner, string reason)
        {
        }
        // 当前用户的入群邀请被接受。邀请人会收到该回调。例如，用户 B 接受了用户 A 的入群邀请，则用户 A 会收到该回调。
        public void OnInvitationAcceptedFromGroup(string groupId, string invitee, string reason)
        {
        }
        // 当前用户的入群申请被拒绝。申请人会收到该回调。例如，用户 B 拒绝用户 A 的入群申请后，用户 A 会收到该回调。
        public void OnInvitationDeclinedFromGroup(string groupId, string invitee, string reason)
        {
        }
        // 用户被移出群组。被踢出群组的成员会收到该回调。
        public void OnUserRemovedFromGroup(string groupId, string groupName)
        {
        }
        // 群组被解散。群主解散群组时，所有群成员均会收到该回调。
        public void OnDestroyedFromGroup(string groupId, string groupName)
        {
        }
        // 用户自动同意入群邀请。受邀用户会收到该邀请。
        public void OnAutoAcceptInvitationFromGroup(string groupId, string inviter, string inviteMessage)
        {
        }
        // 群成员被加入禁言列表。被禁言的成员及群主和群管理员（除操作者外）会收到该回调。
        public void OnMuteListAddedFromGroup(string groupId, List<string> mutes, int muteExpire)
        {
        }
        // 群成员被移出禁言列表。被解除禁言的成员及群主和群管理员（除操作者外）会收到该回调。
        public void OnMuteListRemovedFromGroup(string groupId, List<string> mutes)
        {
        }
        // 群组新增管理员。群主、新管理员和其他管理员会收到该回调。
        public void OnAdminAddedFromGroup(string groupId, string administrator)
        {
        }
        // 有管理员被移出群管理员列表。群主、被移出的管理员和其他管理员会收到该回调。
        public void OnAdminRemovedFromGroup(string groupId, string administrator)
        {
        }
        // 群主变更。原群主和新群主会收到该回调。
        public void OnOwnerChangedFromGroup(string groupId, string newOwner, string oldOwner)
        {
        }
        // 有新成员加入群组。除了新成员，其他群成员会收到该回调。
        public void OnMemberJoinedFromGroup(string groupId, string member)
        {
        }
        // 群成员主动退出群组。除了退群的成员，其他群成员会收到该回调。
        public void OnMemberExitedFromGroup(string groupId, string member)
        {
        }
        // 更新群公告。群组所有成员会收到该回调。
        public void OnAnnouncementChangedFromGroup(string groupId, string announcement)
        {
        }
        // 上传群共享文件。群组所有成员会收到该回调。
        public void OnSharedFileAddedFromGroup(string groupId, GroupSharedFile sharedFile)
        {
        }
        // 删除群共享文件。群组所有成员会收到该回调。
        public void OnSharedFileDeletedFromGroup(string groupId, string fileId)
        {
        }
        // 有成员添加至群白名单。被添加的成员及群主和群管理员（除操作者外）会收到该回调。
        public void OnAddWhiteListMembersFromGroup(string groupId, List<string> whiteList)
        {
        }

        // 有成员从群白名单中移出。被移出的成员及群主和群管理员（除操作者外）会收到该回调。
        public void OnRemoveWhiteListMembersFromGroup(string groupId, List<string> whiteList)
        {
        }

        // 群成员一键禁言状态变更。群组所有成员（除操作者外）会收到该回调。
        public void OnAllMemberMuteChangedFromGroup(string groupId, bool isAllMuted)
        {
        }

        void IGroupManagerDelegate.OnRequestToJoinDeclinedFromGroup(string groupId, string reason)
        {
            throw new NotImplementedException();
        }

        void IGroupManagerDelegate.OnInvitationAcceptedFromGroup(string groupId, string invitee)
        {
            throw new NotImplementedException();
        }

        void IGroupManagerDelegate.OnMuteListAddedFromGroup(string groupId, List<string> mutes, long muteExpire)
        {
            throw new NotImplementedException();
        }

        void IGroupManagerDelegate.OnAddAllowListMembersFromGroup(string groupId, List<string> allowList)
        {
            throw new NotImplementedException();
        }

        void IGroupManagerDelegate.OnRemoveAllowListMembersFromGroup(string groupId, List<string> allowList)
        {
            throw new NotImplementedException();
        }

        void IGroupManagerDelegate.OnStateChangedFromGroup(string groupId, bool isDisable)
        {
            throw new NotImplementedException();
        }

        void IGroupManagerDelegate.OnSpecificationChangedFromGroup(Group group)
        {
            throw new NotImplementedException();
        }
    }



}
